package com.lhn.bbs.mapper;

import com.lhn.bbs.entity.Theme;
import com.lhn.bbs.entity.ThemeExample;
import java.util.List;

import com.lhn.bbs.vo.ReplyVo;
import com.lhn.bbs.vo.ThemeAddVo;
import com.lhn.bbs.vo.ThemeOneVo;
import com.lhn.bbs.vo.ThemeVo;
import org.apache.ibatis.annotations.Param;

public interface ThemeDao {
    long countByExample(ThemeExample example);

    int deleteByExample(ThemeExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(Theme record);

    int insertSelective(Theme record);

    List<Theme> selectByExample(ThemeExample example);

    Theme selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") Theme record, @Param("example") ThemeExample example);

    int updateByExample(@Param("record") Theme record, @Param("example") ThemeExample example);

    int updateByPrimaryKeySelective(Theme record);

    int updateByPrimaryKey(Theme record);

    /**
     * 查询最新帖子
     * @return
     */
    List<ThemeVo> selectNewThemeAll();

    /**
     * 查询帖子详情
     * @param themeid
     * @return
     */
    ThemeOneVo selectThemeOne(Integer themeid);

    /**
     * 查询帖子回帖数
     * @param themeid
     * @return
     */
    int selectcount(Integer themeid);

    /**
     * 查询主题帖的所有回复内容
     * @param themeid
     * @return
     */
    List<ReplyVo> selectReply(Integer themeid);

    /**
     * 根据主题id查询帖子的回复消息数量
     * @param themeid
     * @return
     */
    int findByIdcount(int themeid);


    /**
     * 根据板块id查询板块相关的主题
     * @param plateid
     * @return
     */
    List<ThemeVo> selectpThemeAll(Integer plateid);

    /**
     * 主题帖的发布
     * @param themeAddVo
     * @return
     */
    long saveTheme(ThemeAddVo themeAddVo);

    /**
     * 根据帖子标题模糊查询
     * @param likename
     * @return
     */
    List<ThemeVo> selectlike(String likename);

    /**
     * 根据主题创建人查询
     * @param userid
     * @return
     */
    List<ThemeVo> findByuserid(Integer userid);

    /**
     * 用户发帖数
     * @param userid
     * @return
     */
    int findThemenumberByUserid(Integer userid);

    /**
     * 根据帖子id删除帖子
     * @param themeid
     * @return
     */
    Boolean deleteThemeById(Integer themeid);

    /**
     * 删除主题下的所有评论
     * @param themeid
     * @return
     */
    Boolean deleteReplyByThemeId(Integer themeid);
//    班级主题的发布
    long saveClassTheme(ThemeAddVo themeAddVo);
}